{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 初始化设备"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 118,
   "metadata": {},
   "outputs": [],
   "source": [
    "from IPython.display import display\n",
    "import pyvisa\n",
    "rm = pyvisa.ResourceManager()\n",
    "import time\n",
    "for x in rm.list_resources():\n",
    "    time.sleep(1)\n",
    "    if x == 'ASRL/dev/ttyAMA0::INSTR':\n",
    "        continue\n",
    "    devx = rm.open_resource(x)\n",
    "    devx.write_termination = '\\n'\n",
    "    if devx.query('*IDN?') == 'REASTTEST  100858896 V1.01.1944.004\\r\\n':\n",
    "        dev3 = devx\n",
    "        dev3.read_termination = '\\r\\n'\n",
    "    if devx.query('*IDN?') == 'ZC,VICTOR 8155,,V2.07.2027.000\\n':\n",
    "        dev8 = devx\n",
    "        dev8.read_termination = '\\n'\n",
    "\n",
    "voltRangeMap = {\n",
    "    'B':1e-3,\n",
    "    'C':1,\n",
    "    'D':1,\n",
    "    'E':1,\n",
    "    'F':1,\n",
    "    'G':1\n",
    "}\n",
    "\n",
    "currRangeMap = {\n",
    "    'B':1e-6,\n",
    "    'C':1e-3,\n",
    "    'D':1e-3,\n",
    "    'E':1e-3,\n",
    "    'F':1,\n",
    "    'G':1\n",
    "}"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 输出电压标定"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dev8.write('conf:volt:DC 20V')\n",
    "dev8.write('APER FAST')\n",
    "\n",
    "startV = 0\n",
    "endV = 5\n",
    "step = 0.1\n",
    "holdingTime = 1\n",
    "settlingTime = 0.1\n",
    "\n",
    "\n",
    "dataCount = int((endV - startV)/step +1)\n",
    "x = [startV + i*step for i in range(dataCount)]\n",
    "dev3.write(':OUTP:STAT CH1,ON')\n",
    "y = []\n",
    "\n",
    "import time\n",
    "dev3.write(f':SOUR:CH1:VOLT 0')\n",
    "time.sleep(holdingTime)\n",
    "for v in x:\n",
    "    #display(f':SOUR:CH1:VOLT {v}')\n",
    "    dev3.write(f':SOUR:CH1:VOLT {v}')\n",
    "    time.sleep(settlingTime)\n",
    "    y.append(eval(dev8.query('read?')))\n",
    "dev3.write(':OUTP:STAT CH1,OFF')\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "plt.figure(figsize=(6,6))\n",
    "plt.xlabel('inputV')\n",
    "plt.ylabel('outputV')\n",
    "plt.title('Voltage Output')\n",
    "\n",
    "plt.plot(x,y)\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# IV曲线测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "'3063Ω'"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dev8.write('conf:curr:DC 2mA')\n",
    "dev8.write('APER FAST')\n",
    "\n",
    "startV = 0\n",
    "endV = 2\n",
    "step = 0.1\n",
    "holdingTime = 1\n",
    "settlingTime = 0.5\n",
    "\n",
    "\n",
    "dataCount = int((endV - startV)/step +1)\n",
    "x = [startV + i*step for i in range(dataCount)]\n",
    "dev3.write(':OUTP:STAT CH1,ON')\n",
    "y = []\n",
    "\n",
    "import time\n",
    "dev3.write(f':SOUR:CH1:VOLT 0')\n",
    "time.sleep(holdingTime)\n",
    "for v in x:\n",
    "    dev3.write(f':SOUR:CH1:VOLT {v}')\n",
    "    time.sleep(settlingTime)\n",
    "    unit = dev8.query('func:rang:value?')\n",
    "    curr = dev8.query('read?')\n",
    "    y.append(eval(curr)*currRangeMap[unit])\n",
    "dev3.write(':OUTP:STAT CH1,OFF')\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "plt.figure(figsize=(6,6))\n",
    "plt.xlabel('Voltage(V)')\n",
    "plt.ylabel('Current(A)')\n",
    "plt.title('IV Curve')\n",
    "\n",
    "plt.plot(x,y)\n",
    "plt.show()\n",
    "\n",
    "import numpy as np\n",
    "p,_ = np.polyfit(x,y,1)\n",
    "res = \"{:.4g}Ω\".format(1/p)\n",
    "display(res)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 反相器电压转移曲线测试"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYgAAAGDCAYAAAAxhIflAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjUuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8qNh9FAAAACXBIWXMAAAsTAAALEwEAmpwYAAAsI0lEQVR4nO3deZxcZZ3v8c+3OiEBAkkwzZoNNMoiewuiOODG4gjBESWgCAoTR8VxuTN3YLyjXnQcZ/ReVxxkNBdwCSiKRgdEFBBHjJAw7GsISxJZQsISEkjS3b/7xzmVPqlUp6uhTz2n09/361XpU2erX5+u9Lef85x6jiICMzOzRrXUBZiZWTU5IMzMrCkHhJmZNeWAMDOzphwQZmbWlAPCzMyackCY9UPShZI+n7oOs1QcELYJSQ9JekuC1z1S0tIh3N9ukrolvbzJssslfTlVbYN43TdIei5/rJYUhefPSZra7pryuraS9FlJ9+d1PSRpjqTpKeqxcjggrBIkjRrqfUTEMuC3wKkN6+0AvA246KW+Ztki4vcRMS4ixgH75LMn1OdFxCP1dYfiGA7CZcDxwCnAeGB/YCHw5sHuqM112yA4IGyzJJ0u6b8kfVnSU5IelHRsvuwkSQsa1v+EpHn59Jh8u0ckPS7pfElb58uOlLRU0j9IegyYC1wJ7Fr463hXSTVJZ0t6QNIKST/Kf8EjaXr+F/UZkh4BrmnyLVxEQ0AAs4C7IuJ2SXtJuk7S05LulHR8k2OwbT+1HSLpj/m2j0r6pqStCtsdJeleSc9I+pak30k6s7D8A5Luzo/rVZKmDfJn81lJl0n6vqRngdNbqCkk/U3+l//Tks6TpHzZK/Ian5H0pKRL+3ndtwBvBWZGxE0R0R0Rz0TEeRHx3XydjVqhea3fz6c3+blJulLSWQ2vc6ukv8qn95R0taSV+TF992COlb04DghrxaHAvcAk4N+A7+a/VH4BvErSjMK6pwA/zKe/CLwSOAB4BbAb8OnCujsDOwDTgPcBxwJ/Lvx1/Gfgo8AJwBHArsBTwHkN9R0B7AUc3aT2y4FJkg4vzDsVuEjS6Px7+DWwY/5aP5D0quIOImJ1P7X1AJ/Ij8thZH89fxhA0iSyv7LPAV6WH7/X1fcpaSbwj8BfAZ3A78lCcrBm5q8zAfjB5moqeDvwGmA/4N30HbfP5cdiIjAZ+EY/r/kW4MaIWPIi6i0q/tzmAifXF0jam+x98Z95QF9N9r7akSzgv5WvY2WKCD/82OgBPAS8JZ8+HVhUWLYNEMDO+fPvA5/Op2cAq/J1BKwGXl7Y9jDgwXz6SGAdMLaw/EhgaUMtdwNvLjzfBVgPjAKm57XsMcD38x3ggkKN68h+0bwBeAyoFdadC3w2n74Q+Hx/tTV5nY8Dl+fT7wP+WFgmYAlwZv78SuCMwvIasAaYtpn917/fUfnzzwLXt1pT/jyAwwvPfwScnU9fDFwATB5gn/8BXNLqe6hQ6/cbvo89Csu3y98v0/Ln/wzMyadPAn7fsP9vA59J/X9lS3+4BWGteKw+ERFr8slx+dcf0veX3ynAz/J1OsmCYmF+KuNp4Ff5/LrlEfHCAK89Dbi8sI+7yf5K3qmwzkB/yV4EvEvSWLLWw1UR8QRZi2RJRPQW1n2YrKUzIEmvlPRLSY/lp3i+QPaXO/V919eN7LdasZN7GvC1wve1kixEWnrtgo2+9wFqqnusML2Gvp/l/8xruDE/3faBfl5zBVlQv1TF47MK+E+y1gFk76kf5NPTgEPrxyo/Xu8ha4FaiRwQ9lJdDXRKOoDsP3X99NKTwPPAPhExIX+Mj6yzta5xKOFmQwsvAY4t7GNCRIyNrAN6c9sV/RfZL+CZwHvp65z+MzBFUvH/wVRgGZtq9hr/DtwDzIiI7clOGSlf9ijZaRoA8lNykwvbLgE+2PB9bR0RNwzwvQxU1+Zq2vyOIh6LiL+OiF2BD5KdxnlFk1V/AxwiaXKTZXWryf5AqGv2y7yx9rnAyZIOA8YC1+bzlwC/azhW4yLiQ618X/biOSDsJYmI9cCPgS+R9Sdcnc/vJTsV8RVJO8KGy06b9RPUPQ68TNL4wrzzgX+ud+BK6szP3w+mxiA7ffKvZOfqf5Ev+hPZX9D/U9JoSUcCxwGXtFjbdsCzwHOS9gSKv7D+E9hX0gnKrtL5CBv/kjwfOEfSPvn3NV7SuwbzffVjczVtlqR3FX7pP0X2C7y3cb2I+A3Zz/lySQdLGiVpu7zzu97quAWYlR/XLuDEFkq4gqy1cC5waaFl90vglZJOzfc3WtJrJO3V6vdmL44DwobCD8k6Ln8cEd2F+f8ALALm56c7fgO8qsn2AETEPWR/RS7OTyXsCnwNmAf8WtIqYD5Zp/lgXUzWOrg0Itbmr7eOLBCOJWvxfAt4X15HK7X9HdlptVVkYXhpYf0ngXeRdeqvAPYGFgD1176cLLAuyY/NHXkdL1W/NbXgNcCfJD1Hdsw/FhGL+1n3RLJf6JcCz5DV30X2Mwb4J+DlZEHzv+lrWfYr/7n8lOy99MPC/FXAUWSnn/5MdorsX4Exg/je7EVQ9seVmZUpP421FHhPRFw70PpmVeAWhFlJJB0taYKkMfT1BcxPXJZZyxwQZuU5DHiA7PTVccAJEfF82pLMWudTTGZm1pRbEGZm1pQDwszMmtqiRlGcNGlSTJ8+PXUZZmbDxsKFC5+MiM5my7aogJg+fToLFiwYeEUzMwNA0sP9LfMpJjMza8oBYWZmTTkgzMysKQeEmZk15YAwM7OmHBBmZtaUA8LMzJpyQJiZWVMOCDMza6q0gJA0RdK1ku7Kb4D+sSbrSNLXJS2SdJukgwrLTpN0f/44raw6zcysuTKH2ugG/kdE3CxpO2ChpKsj4q7COscCM/LHoWQ3XD9U0g7AZ8huYRj5tvMi4qkS6zUzs4LSAiIiHgUezadXSbob2A0oBsRM4OL8pvLz87tv7QIcCVwdESsBJF0NHEN2T+Ah94dFT9L7Iu6LIYRUn67/k80HkDbMQmo2r7Cnwn42rFtYr7hPGrbf6PUK8+rTNYmOmuiQ6OjIvtZqZM9rfY/ierVa4YXMbERqy2B9kqYDBwJ/ali0G7Ck8HxpPq+/+c32PRuYDTB16tQXVd+ZFy3g+fU9L2rbLdmoWhYU9SCpCUZ11KhJjBlVY+zoGltv1cHWozsYOzr7Wny+4/Zj2Gvn7encbgwTthnNDttuxTZbbVHjQ5pt0Ur/3yppHPAT4OMR8exQ7z8iLgAuAOjq6npRt8f7/pmHMtg76wVQ3yQiqG+9YR4B0bdufVl9zYjifqJvveL29W022c+mrwfRsM++/fT0Br0R9PRCb2/Q3Rv0RNDb27esuz5dWLbxeuTr9dLTC+u6e3lhfQ/Pr+/h+XU9rHqhm+Wr1m54/vy6Hlat7d7kuHVuN4ZX77o9b95rJ/bdbTwzdhrn0DCrqFL/Z0oaTRYOP4iInzZZZRkwpfB8cj5vGdlppuL868qpEg6eNrGsXY9oz6xZz/1PrGLF6nU8s2Y9T65ey4PLV3PjQyu59md3ADBhm9F84R378rZ9d0lcrZk1Ki0glJ1I/y5wd0T8335WmwecJekSsk7qZyLiUUlXAV+QVP/NfRRwTlm1WjnGbzOaruk7bDI/InjwydXc9/gqvnXdA3z4BzfzhhmT+OibZvCa6RM39MGYWVpltiBeD5wK3C7plnzePwJTASLifOAK4G3AImAN8P582UpJnwNuyrc7t95hbcOfJPboHMceneN481478f/+8CDn/24x7/72H5mx4zi+ccqB7Lnz9qnLNBvxNNhz71XW1dUVvqPc8LRmXTe/uPXPfP6Xd3P0q3fmy+/aP3VJZiOCpIUR0dVsmXsHrRK22WoUJ71mKjc8sIJr73mC3t7wpbZmiXmoDauUN+25IytWr+PWpU+nLsVsxHNAWKUc8cpOaoJr73kidSlmI54DwiplwjZb0TVtB66683HWdvvDi2YpOSCsck7smsy9j6/iL7/+Xzy8YnXqcsxGLAeEVc67u6Zw4ftfw8MrVvPDGx9JXY7ZiOWAsEo68lU7svP4sTz2zAupSzEbsRwQVlk7b++AMEvJAWGVtdP2Y3n8WQeEWSoOCKusnbcfy2PPvjDokXbNbGg4IKyydh4/lhfW9/Ls85sOG25m5XNAWGXttP1YAB5f5dNMZik4IKyy6gHhjmqzNBwQVlk71wPCHdVmSTggrLJ23H4MAI+7BWGWhAPCKmvs6A4mbjPaLQizRBwQVmn+LIRZOg4Iq7Sdx491C8IsEQeEVVo23Mba1GWYjUgOCKu0Hbcfy4rVa+nu6U1ditmI44CwShszqkYEdPd6uA2zdnNAWKXVJAA8HJNZ+zkgrNJqWT4QOCHM2s0BYZWWNyDwGSaz9nNAWKX1nWJyQpi1mwPChgW3IMzazwFhlVZvQbgLwqz9HBBWaX19EE4Is3YbVdaOJc0B3g48ERGvbrL874H3FOrYC+iMiJWSHgJWAT1Ad0R0lVWnVduGPojEdZiNRGW2IC4EjulvYUR8KSIOiIgDgHOA30XEysIqb8yXOxxGMLcgzNIpLSAi4npg5YArZk4G5pZViw1f8gflzJJJ3gchaRuylsZPCrMD+LWkhZJmD7D9bEkLJC1Yvnx5maVaAnkDwpe5miWQPCCA44A/NJxeOjwiDgKOBT4i6S/62zgiLoiIrojo6uzsLLtWa7N6H4QvczVrvyoExCwaTi9FxLL86xPA5cAhCeqyCvBQG2bpJA0ISeOBI4CfF+ZtK2m7+jRwFHBHmgotNQ+1YZZOmZe5zgWOBCZJWgp8BhgNEBHn56u9A/h1RKwubLoTcHneOTkK+GFE/KqsOq3a5KE2zJIpLSAi4uQW1rmQ7HLY4rzFwP7lVGXDTV8nddIyzEakKvRBmPXL94MwS8cBYZXmD8qZpeOAsErzUBtm6TggrNLcgjBLxwFhlearmMzScUBYpW34oJzzwaztHBBWacJDbZil4oCwSvNQG2bpOCCs0jZ0UvemrcNsJHJAWKVt6KR2C8Ks7RwQVmkeasMsHQeEVZqH2jBLxwFhleYPypml44CwSvNQG2bpOCCs2tyCMEvGAWGVVvNQG2bJOCCs0jzUhlk6DgirNA+1YZaOA8Iqra8F4YQwazcHhFXbhk7qtGWYjUQOCKu0mofaMEvGAWGV5qE2zNJxQFil1WoeasMsFQeEVVq9BeEPypm1nwPCKq0+3LcDwqz9HBBWaX13lDOzdnNAWKXJQ22YJeOAsErzUBtm6ZQWEJLmSHpC0h39LD9S0jOSbskfny4sO0bSvZIWSTq7rBqt+jzUhlk6ZbYgLgSOGWCd30fEAfnjXABJHcB5wLHA3sDJkvYusU6rMHmoDbNkSguIiLgeWPkiNj0EWBQRiyNiHXAJMHNIi7NhQx5qwyyZ1H0Qh0m6VdKVkvbJ5+0GLCmsszSf15Sk2ZIWSFqwfPnyMmu1BOpDbfg6JrP2SxkQNwPTImJ/4BvAz17MTiLigojoioiuzs7OoazPKsAtCLN0kgVERDwbEc/l01cAoyVNApYBUwqrTs7n2QjUd0e5xIWYjUDJAkLSzsovcpd0SF7LCuAmYIak3SVtBcwC5qWq09LyUBtm6Ywqa8eS5gJHApMkLQU+A4wGiIjzgROBD0nqBp4HZkV2qUq3pLOAq4AOYE5E3FlWnVZtHmrDLJ3SAiIiTh5g+TeBb/az7ArgijLqsuGl/kE5M2u/1FcxmW2WWxBm6TggrNI81IZZOg4IqzQPtWGWjgPCKs1DbZil44CwSpNPMZkl44CwStvwQTkPtWHWdg4IqzQPtWGWjgPCKq3my1zNknFAWKW5D8IsHQeEVVr9MldfxWTWfg4Iq7QNH5RLW4bZiOSAsErbMNSGe6nN2s4BYZXmFoRZOg4IqzQPtWGWjgPCKk35O9Sd1Gbt54CwSqvfDsL5YNZ+DgirNA+1YZaOA8IqzUNtmKXjgLBK81AbZuk4IKzSPNSGWToOCKs0D7Vhlo4DwirN96Q2S8cBYZW2YagNB4RZ2zkgrNL6htpwQpi1mwPCKs0tCLN0HBBWeRLuhDBLwAFhlSfcgjBLwQFhlVeT/EE5swRKCwhJcyQ9IemOfpa/R9Jtkm6XdIOk/QvLHsrn3yJpQVk12vBQk9xFbZZAmS2IC4FjNrP8QeCIiNgX+BxwQcPyN0bEARHRVVJ9NlzIQ22YpTCqrB1HxPWSpm9m+Q2Fp/OByWXVYsNbTfiWcmYJVKUP4gzgysLzAH4taaGk2ZvbUNJsSQskLVi+fHmpRVoawn0QZimU1oJolaQ3kgXE4YXZh0fEMkk7AldLuicirm+2fURcQH56qqury79FtkA1+SpXsxSStiAk7Qd8B5gZESvq8yNiWf71CeBy4JA0FVoVSPJlrmYJJAsISVOBnwKnRsR9hfnbStquPg0cBTS9EspGBslDbZilUNopJklzgSOBSZKWAp8BRgNExPnAp4GXAd/Kh1Pozq9Y2gm4PJ83CvhhRPyqrDqt+vxBarM0yryK6eQBlp8JnNlk/mJg/023sJGqVpPvB2GWQFWuYjLrl4faMEvDAWGV56E2zNJwQFjlyUNtmCXhgLDKk3xParMUHBBWef6gnFkaDgirPA+1YZaGA8Iqzy0IszQcEFZ5HmrDLA0HhFWeh9owS8MBYZUnn2IyS6KloTYk1ciGv9gVeB64Ix9p1ax0/qCcWRqbDQhJLwf+AXgLcD+wHBgLvFLSGuDbwEUR0Vt2oTZy1SS3IMwSGKgF8Xng34EPRsMnlSTtBJwMnApcVE55ZvWxmJwQZu222YAYYETWlRHx1aEtx2xTWSe1mbXboDqplXmzpO8CS0uqyWwjkof7NkuhpYCQ9FpJXwceBn4OXA/sWWZhZnX+oJxZGpsNCElfkHQ/8M/AbcCBwPKIuCginmpHgWYeasMsjYE6qc8E7iPrqP5FRKyV5P+p1lb+HIRZGgOdYtqF7Eqm44AHJH0P2FpSabcqNWvkoTbM0hjoKqYe4FfArySNAd4ObA0sk/TbiDilDTXaCFcT+Doms/ZruSUQEWuBnwA/kbQ9cEJZRZkVSb4ntVkKA3VSvzcfZmMjEfFsRFws6eWSDi+vPDMPtWGWykAtiJcB/y1pIbCQvqE2XgEcATwJnF1qhTbiyUNtmCUxUB/E1yR9E3gT8HpgP7LB+u4GTo2IR8ov0UY6D7VhlsaAfRAR0SNpTUR8tjhf0usBB4SVLuukNrN2a3WojW+0OM9syMl9EGZJDDTc92HA64BOSZ8sLNoe6CizMLM6D7VhlsZAp5i2Asbl621XmP8scGJZRZkVeagNszQG6qT+HfA7SRdGxMOD3bmkOWQfrnsiIl7dZLmArwFvA9YAp0fEzfmy04D/la/6+YjwPSdGKA+1YZZGqx+Uu7DZGEwR8aaBtgO+CVzcz/JjgRn541CyMZ8OlbQD8Bmgi+wjtAslzfMAgSOTBL2+Z6FZ27UaEH9XmB4LvBPoHmijiLhe0vTNrDITuDi/W918SRMk7QIcCVwdESsBJF0NHAPMbbFe24LUJLp9V1uztmspICJiYcOsP0i6cQhefzdgSeH50nxef/M3IWk2MBtg6tSpQ1CSVU1N8khMZgm0esOgHQqPSZKOBsaXXFtLIuKCiOiKiK7Ozs7U5VgJsrGYHBFm7dbqKaaFZH0BIju19CBwxhC8/jJgSuH55HzeMrLTTMX51w3B69kw5KE2zNJo9RTT7iW9/jzgLEmXkHVSPxMRj0q6CviCpIn5ekcB55RUg1WcwPekNkugpYCQNBb4MHA4WUvi98D5EfHCANvNJWsJTJK0lOzKpNEAEXE+cAXZJa6LyC5zfX++bKWkzwE35bs6t95hbSNPTb4bhFkKrZ5iuhhYRd/wGqcA3wPetbmNIuLkAZYH8JF+ls0B5rRYn23BPNSGWRqtBsSrI2LvwvNrJd1VRkFmjTzUhlkarQ7Wd7Ok19afSDoUWFBOSWaNfE9qsxRabUEcDNwgqT6891TgXkm3k50p2q+U6syotyCcEGbt1mpAHFNqFWab4bGYzNJoNSA+HxGnFmdI+l7jPLMy+J7UZmm02gexT/GJpFFkp53MSuehNszS2GxASDpH0ipgP0nPSlqVP38c+HlbKjTzUBtmSWw2ICLiXyJiO+BLEbF9RGyXP14WEf5ks7VFTf6knFkKrfZBXCnpLxpnRsT1Q1yP2SaEWxBmKbQaEH9fmB4LHEI2gN9ANwwye8k81IZZGq0O1ndc8bmkKcBXyyjIrJGH2jBLo9WrmBotBfYaykLM+uPPQZil0eport+gr5VfAw4Ebi6rKLMi4ftBmKXQah/EXUBHPv00MDci/lBKRWYNar7M1SyJzQZE/oG4LwAfAIrjMM2RdGNErC+5PrPsg3LOB7O2G6gP4kvADsDuEXFQRBwE7AFMAL5ccm1mgO9JbZbKQAHxduCvI2JVfUZEPAt8iOxOcGalk4faMEtioICIaDLOckT04EvTrU3k4b7NkhgoIO6S9L7GmZLeC9xTTklmG/Md5czSGOgqpo8AP5X0AbJPTgN0AVsD7yizMLM64Q/KmaWw2YCIiGXAoZLeRN+Q31dExG9Lr8ws56E2zNJodaiNa4BrSq7FrClJ9Pqm1GZt92KH2jBrG4/2bZaGA8Iqz0NtmKXhgLDK81AbZmk4IKzyajW3IMxScEBY5fmOcmZpOCCs8jzUhlkapQaEpGMk3StpkaSzmyz/iqRb8sd9kp4uLOspLJtXZp1WbR5qwyyNVu8HMWiSOoDzgLeS3YHuJknzIuKu+joR8YnC+h8luxFR3fMRcUBZ9dnw4aE2zNIoswVxCLAoIhZHxDrgEmDmZtY/GZhbYj02THmoDbM0ygyI3YAlhedL83mbkDQN2J2NP609VtICSfMlnVBalVZ5HmrDLI3STjEN0izgsnwY8bppEbFM0h7ANZJuj4gHGjeUNBuYDTB16tT2VGvtld9RLiKQlLoasxGjzBbEMmBK4fnkfF4zs2g4vZQPFEhELAauY+P+ieJ6F0REV0R0dXZ2vtSarYJqeSb4LJNZe5UZEDcBMyTtLmkrshDY5GokSXsCE4E/FuZNlDQmn54EvB64q3FbGxlqeavB+WDWXqWdYoqIbklnAVcBHcCciLhT0rnAgoioh8Us4JKGO9ftBXxbUi9ZiH2xePWTjSz1k0q9EXTgU0xm7VJqH0REXAFc0TDv0w3PP9tkuxuAfcuszYaPWn6OyaeYzNrLn6S2YcOXupq1lwPCKq/mK5fMknBAWOXV88EtCLP2ckBY5fkyV7M0HBBWecqvXHILwqy9HBBWefVTTI4Hs/ZyQFjl1YfXiN7EhZiNMA4Iq7yaO6nNknBAWOV5qA2zNBwQVnm+zNUsDQeEVd6GPgjng1lbOSCs8uqfo/Z9qc3aywFhlec+CLM0HBBWee6DMEvDAWGV56E2zNJwQFjleagNszQcEFZ5cgvCLAkHhFVezZe5miXhgLDKcye1WRoOCKs8X+ZqloYDwirPLQizNBwQVnkeasMsDQeEVZ6H2jBLwwFhlec+CLM0HBBWee6DMEvDAWGV56E2zNJwQNgw4KE2zFJwQFjluQVhlkapASHpGEn3Slok6ewmy0+XtFzSLfnjzMKy0yTdnz9OK7NOqzYPtWGWxqiydiypAzgPeCuwFLhJ0ryIuKth1Usj4qyGbXcAPgN0kV28sjDf9qmy6rXqcie1WRpltiAOARZFxOKIWAdcAsxscdujgasjYmUeClcDx5RUp1WcL3M1S6PMgNgNWFJ4vjSf1+idkm6TdJmkKYPc1kYCtyDMkkjdSf0LYHpE7EfWSrhosDuQNFvSAkkLli9fPuQFWnrugzBLo8yAWAZMKTyfnM/bICJWRMTa/Ol3gINb3bawjwsioisiujo7O4ekcKsWD7VhlkaZAXETMEPS7pK2AmYB84orSNql8PR44O58+irgKEkTJU0Ejsrn2QjkPgizNEq7iikiuiWdRfaLvQOYExF3SjoXWBAR84C/lXQ80A2sBE7Pt10p6XNkIQNwbkSsLKtWq7YNVzH1OiLM2qm0gACIiCuAKxrmfbowfQ5wTj/bzgHmlFmfDQ99l7mmrcNspEndSW02oL5TTE4Is3ZyQFjl9XVSJy3DbMRxQFjl1Wq+zNUsBQeEVV69BeEPypm1lwPCKk++zNUsCQeEVZ4H6zNLwwFhlVe/islNCLP2ckBY5bkPwiwNB4RVngfrM0vDAWGV5z4IszQcEFZ5HmrDLA0HhFXehk5q91KbtZUDwirPLQizNBwQVnnupDZLwwFhlefLXM3ScEBY5XmoDbM0HBBWeRs+SO0WhFlbOSCs8twHYZaGA8Iqz30QZmk4IKzy6i0IX+Zq1l4OCKs890GYpeGAsMrrC4i0dZiNNA4Iq7wNndS+0NWsrRwQVnkeasMsDQeEVZ4vczVLwwFhlefLXM3ScEBY5XmoDbM0HBBWeb7M1SyNUgNC0jGS7pW0SNLZTZZ/UtJdkm6T9FtJ0wrLeiTdkj/mlVmnVZv7IMzSGFXWjiV1AOcBbwWWAjdJmhcRdxVW+2+gKyLWSPoQ8G/ASfmy5yPigLLqs+HDfRBmaZTZgjgEWBQRiyNiHXAJMLO4QkRcGxFr8qfzgckl1mPDlIfaMEujzIDYDVhSeL40n9efM4ArC8/HSlogab6kE0qoz4YJ5e9S90GYtVdpp5gGQ9J7gS7giMLsaRGxTNIewDWSbo+IB5psOxuYDTB16tS21GvtVT/F5Hwwa68yWxDLgCmF55PzeRuR9BbgU8DxEbG2Pj8iluVfFwPXAQc2e5GIuCAiuiKiq7Ozc+iqt8rwUBtmaZQZEDcBMyTtLmkrYBaw0dVIkg4Evk0WDk8U5k+UNCafngS8Hih2btsI4qE2zNIo7RRTRHRLOgu4CugA5kTEnZLOBRZExDzgS8A44Mf5h6EeiYjjgb2Ab0vqJQuxLzZc/WQjiC9zNUuj1D6IiLgCuKJh3qcL02/pZ7sbgH3LrM2GH1/matZe/iS1VV69BWFm7eWAsMrb0AfhTgiztnJAWOX5g3JmaTggrPJq9cH6fJmrWVs5IKzy5BaEWRIOCBsWJHydq1mbOSBsWBBuQZi1mwPChoWa5D4IszZzQNiwILkFYdZuDggbFiS5C8KszRwQNixkfdROCLN2ckDYsNBRE+t6elOXYTaiOCBsWNijc1vufWxV6jLMRhQHhA0LB02dyK1LnqbHPdVmbeOAsGHhoKkTWb2ux60IszZyQNiwcNDUiQDc/MhTiSsxGzkcEDYsTNlhayaNG8PNDzsgzNrFAWHDgiQOmjrBLQizNnJA2LBx8LSJPLRiDX9++vnUpZiNCA4IGzaO3mdnAH5x658TV2I2MjggbNiYPmlbDpgygZ/d4oAwawcHhA0rJxywK3c/+qwvdzVrAweEDStv339XOmrip/+9NHUpZls8B4QNK5PGjeFNe+7IZQuWsra7J3U5Zls0B4QNO+997TRWrF7Hr+54LHUpZls0B4QNO294xSSmvWwbfjD/kdSlmG3RHBA27NRq4tTXTuPGh1byf359L70ewM+sFKNSF2D2Ypz2uunc//hzfOOaRfzuvuW86+DJnHzIVEZ1+G8es6Hi/002LI3uqPHFd+7Lv/zVvnT3BP/08zt535wbeXjFarcozIaIyryNo6RjgK8BHcB3IuKLDcvHABcDBwMrgJMi4qF82TnAGUAP8LcRcdVAr9fV1RULFiwY0u/BhofLFi7lHy+/nXXdvWw9uoM9Orela9pEjtt/VyaNG8P4rUczYZvRSEpdqlmlSFoYEV3NlpV2iklSB3Ae8FZgKXCTpHkRcVdhtTOApyLiFZJmAf8KnCRpb2AWsA+wK/AbSa+MCF/XaE2dePBkDpo6gfmLV/LA8ue4/4nnuOSmJVz0x4c3rDNuzCgmT9yayRO3ZrcJWzNu7CjGjOpg7OgaY0d3MHZUB2NG1zaeN7qDMaPq07UN63TURE3ZQ4CEw8e2OGX2QRwCLIqIxQCSLgFmAsWAmAl8Np++DPimsv9lM4FLImIt8KCkRfn+/lhivTbM7dE5jj06x214/szz6/njA0+yZl0PT61Zz5KVa1j61PMsfWoNf3pwJWvW9QzpHeokEGwIDgQ1sSFE+uaJWh4o9a992+XP69vl+6yHz4YIKmSRNrx+6wHV6pqDyTy1vNfB7bf1fQ7995/td2jXy15/aI/VhG224uIPHNJ6AS0qMyB2A5YUni8FDu1vnYjolvQM8LJ8/vyGbXdr9iKSZgOzAaZOnTokhduWYfzWoznm1btsdp31Pb28sL6Htd3Z1xfW9z1fu76HF7p7WLu+lxe6+5a9sL6X3ggigt4gn2bD86BvPvnX3oCoz6M+L/J52bZRXJe+5/WzwPUoK54Wjk0mBhYtrjyYs8+DWreM12991UHtt9U9l1dra2tvv/XoQey1dcP+KqaIuAC4ALI+iMTl2DAzuqPG6I4a26UuxKyCyryKaRkwpfB8cj6v6TqSRgHjyTqrW9nWzMxKVGZA3ATMkLS7pK3IOp3nNawzDzgtnz4RuCayNtU8YJakMZJ2B2YAN5ZYq5mZNSjtFFPep3AWcBXZZa5zIuJOSecCCyJiHvBd4Ht5J/RKshAhX+9HZB3a3cBHfAWTmVl7lfo5iHbz5yDMzAZnc5+D8CepzcysKQeEmZk15YAwM7OmHBBmZtaUA8LMzJpyQJiZWVMOCDMza8oBYWZmTTkgzMysqS3qk9SSlgMPD7hic5OAJ4ewnKHiugbHdQ2O6xqcLbGuaRHR2WzBFhUQL4WkBf193Dwl1zU4rmtwXNfgjLS6fIrJzMyackCYmVlTDog+F6QuoB+ua3Bc1+C4rsEZUXW5D8LMzJpyC8LMzJra4gNC0jGS7pW0SNLZTZaPkXRpvvxPkqYXlp2Tz79X0tFtruuTku6SdJuk30qaVljWI+mW/NF4G9ey6zpd0vLC659ZWHaapPvzx2mN25Zc11cKNd0n6enCsjKP1xxJT0i6o5/lkvT1vO7bJB1UWFbm8Rqorvfk9dwu6QZJ+xeWPZTPv0XSkN6Bq4W6jpT0TOHn9enCss2+B0qu6+8LNd2Rv6d2yJeVebymSLo2/11wp6SPNVmnvPdYRGyxD7JbnT4A7AFsBdwK7N2wzoeB8/PpWcCl+fTe+fpjgN3z/XS0sa43Atvk0x+q15U/fy7h8Tod+GaTbXcAFudfJ+bTE9tVV8P6HyW7xW2pxyvf918ABwF39LP8bcCVgIDXAn8q+3i1WNfr6q8HHFuvK3/+EDAp0fE6EvjlS30PDHVdDeseB1zTpuO1C3BQPr0dcF+T/5Olvce29BbEIcCiiFgcEeuAS4CZDevMBC7Kpy8D3ixJ+fxLImJtRDwILMr315a6IuLaiFiTP50PTB6i135JdW3G0cDVEbEyIp4CrgaOSVTXycDcIXrtzYqI68nup96fmcDFkZkPTJC0C+UerwHriogb8teF9r2/Wjle/Xkp782hrqud769HI+LmfHoVcDewW8Nqpb3HtvSA2A1YUni+lE0P7oZ1IqIbeAZ4WYvblllX0RlkfyHUjZW0QNJ8SScMUU2DqeudeVP2MklTBrltmXWRn4rbHbimMLus49WK/mov83gNVuP7K4BfS1ooaXaCeg6TdKukKyXtk8+rxPGStA3ZL9mfFGa35XgpO/19IPCnhkWlvcdGDbpKaytJ7wW6gCMKs6dFxDJJewDXSLo9Ih5oU0m/AOZGxFpJHyRrfb2pTa/dilnAZRHRU5iX8nhVmqQ3kgXE4YXZh+fHa0fgakn35H9ht8PNZD+v5yS9DfgZMKNNr92K44A/RESxtVH68ZI0jiyUPh4Rzw7lvjdnS29BLAOmFJ5Pzuc1XUfSKGA8sKLFbcusC0lvAT4FHB8Ra+vzI2JZ/nUxcB3ZXxVtqSsiVhRq+Q5wcKvblllXwSwamv8lHq9W9Fd7mcerJZL2I/sZzoyIFfX5heP1BHA5Q3dqdUAR8WxEPJdPXwGMljSJChyv3ObeX6UcL0mjycLhBxHx0yarlPceK6NjpSoPshbSYrJTDvWOrX0a1vkIG3dS/yif3oeNO6kXM3Sd1K3UdSBZp9yMhvkTgTH59CTgfoaos67FunYpTL8DmB99HWIP5vVNzKd3aFdd+Xp7knUYqh3Hq/Aa0+m/0/Uv2bgD8cayj1eLdU0l61d7XcP8bYHtCtM3AMe0sa6d6z8/sl+0j+THrqX3QFl15cvHk/VTbNuu45V/7xcDX93MOqW9x4bs4Fb1QdbDfx/ZL9tP5fPOJfurHGAs8OP8P8uNwB6FbT+Vb3cvcGyb6/oN8DhwS/6Yl89/HXB7/h/kduCMNtf1L8Cd+etfC+xZ2PYD+XFcBLy/nXXlzz8LfLFhu7KP11zgUWA92TneM4C/Af4mXy7gvLzu24GuNh2vger6DvBU4f21IJ+/R36sbs1/zp9qc11nFd5f8ykEWLP3QLvqytc5nezCleJ2ZR+vw8n6OG4r/Kze1q73mD9JbWZmTW3pfRBmZvYiOSDMzKwpB4SZmTXlgDAzs6YcEGZm1pQDwqwfkp4rYZ/TJZ3SMO9ASd/Nly2VVGtYfoukQyWdJekDQ12TWX8cEGbtNR04pWHePwJfj4iHyD4Y9ob6Akl7kn0Q60/AHLKRas3awgFhNoD8HgXX5YMT3iPpB/mIv/V7Afxbfj+AGyW9Ip9/oaQTC/uot0a+CLwhbxV8QtJ2wH4RcWu+fC7ZJ/rrZpGNXEpko/s+JKltQ1/YyOaAMGvNgcDHye4Tsgfw+sKyZyJiX+CbwFcH2M/ZwO8j4oCI+ArZQIzFm9T8CDghHxcM4CQ2HvtnAYUWhlmZHBBmrbkxIpZGRC/ZcAfTC8vmFr4eNsj97gIsrz+JiMfJAuPNkg4AuiOiGCBPALsO8jXMXhQP923WmrWF6R42/r8TTaa7yf8Ayzudt+pnv8+TjQdWVD/N9Dib3phmbL6NWencgjB76U4qfP1jPv0QfUOhHw+MzqdXkd06su5u4BUN+/sp2YBsJ5H3PxS8ko1PSZmVxgFh9tJNlHQb8DHgE/m8/wCOkHQr2Wmn1fn824Ce/I5pn4iIe4DxeWc1ABHxNFnQPB7ZPSyKXk9260iz0nk0V7OXQNJDZMMrP/kS9vEJYFVEfGeA9Q4EPhkRp77Y1zIbDLcgzNL7dzbu4+jPJOCfSq7FbAO3IMzMrCm3IMzMrCkHhJmZNeWAMDOzphwQZmbWlAPCzMyackCYmVlT/x/zmU0wy6IIOQAAAABJRU5ErkJggg==",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dev8.write('conf:volt:DC null')\n",
    "dev8.write('APER FAST')\n",
    "\n",
    "workV = 2\n",
    "step = 0.01\n",
    "holdingTime = 1\n",
    "settlingTime = 0.2\n",
    "\n",
    "endV = workV\n",
    "startV = 0\n",
    "\n",
    "dataCount = int((endV - startV)/step +1)\n",
    "x = [startV + i*step for i in range(dataCount)]\n",
    "dev3.write(':OUTP:STAT CH1,ON')\n",
    "dev3.write(':OUTP:STAT CH2,ON')\n",
    "\n",
    "y = []\n",
    "\n",
    "import time\n",
    "dev3.write(':SOUR:CH1:CURR 0.02')\n",
    "dev3.write(':SOUR:CH2:CURR 0.02')\n",
    "dev3.write(f':SOUR:CH2:VOLT {workV}')\n",
    "time.sleep(holdingTime)\n",
    "dev3.write(f':SOUR:CH1:VOLT 0')\n",
    "\n",
    "time.sleep(holdingTime)\n",
    "for v in x:\n",
    "    dev3.write(f':SOUR:CH1:VOLT {v}')\n",
    "    time.sleep(settlingTime)\n",
    "    unit = dev8.query('func:rang:value?')\n",
    "    num = dev8.query('read?')\n",
    "    y.append(eval(num)*voltRangeMap[unit])\n",
    "dev3.write(':OUTP:STAT CH1,OFF')\n",
    "dev3.write(':OUTP:STAT CH2,OFF')\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "plt.figure(figsize=(6,6))\n",
    "plt.xlabel('Input(V)')\n",
    "plt.ylabel('Output(A)')\n",
    "plt.title('Inverter Voltage Trans Curve')\n",
    "\n",
    "plt.plot(x,y)\n",
    "plt.show()\n",
    "\n",
    "import gTdev\n",
    "inv = gTdev.inverter(x,y)\n",
    "#display([inv.Vm,inv.gain,inv.hys,inv.NMH,inv.NML])\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['0.693V', '169', '0V', '0.5963V', '1.245V']"
      ]
     },
     "execution_count": 65,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "[str(a) for a in [inv.Vm,inv.gain,inv.hys,inv.NMH,inv.NML]]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 正负电压标定"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "dev8.write('conf:volt:DC 20V')\n",
    "dev8.write('APER FAST')\n",
    "\n",
    "startV = 0\n",
    "endV = 5\n",
    "step = 0.1\n",
    "holdingTime = 1\n",
    "settlingTime = 0.5\n",
    "\n",
    "\n",
    "dataCount = int((endV - startV)/step +1)\n",
    "x = [startV + i*step for i in range(dataCount)]\n",
    "dev3.write(':OUTP:STAT CH1,ON')\n",
    "dev3.write(':OUTP:STAT CH3,ON')\n",
    "y = []\n",
    "\n",
    "import time\n",
    "dev3.write(f':SOUR:CH1:VOLT 0')\n",
    "dev3.write(f':SOUR:CH3:Fixed 2.5')\n",
    "time.sleep(holdingTime)\n",
    "for v in x:\n",
    "    #display(f':SOUR:CH1:VOLT {v}')\n",
    "    dev3.write(f':SOUR:CH1:VOLT {v}')\n",
    "    time.sleep(settlingTime)\n",
    "    unit = dev8.query('func:rang:value?')\n",
    "    curr = dev8.query('read?')\n",
    "    y.append(eval(curr)*currRangeMap[unit])\n",
    "dev3.write(':OUTP:STAT CH1,OFF')\n",
    "dev3.write(':OUTP:STAT CH3,OFF')\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "plt.figure(figsize=(6,6))\n",
    "plt.xlabel('inputV')\n",
    "plt.ylabel('outputV')\n",
    "plt.title('Voltage Output')\n",
    "plt.grid()\n",
    "\n",
    "plt.plot(x,y)\n",
    "plt.show()\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "[0.0295 0.0292 0.0296 0.0293 0.0291 0.0294 0.029  0.0295 0.0292 0.0289\n",
      " 0.0292 0.029  0.0293 0.0291 0.0294 0.0292 0.0289 0.0292 0.029  0.0293\n",
      " 0.029  0.0288 0.0291 0.029  0.0292 0.0289 0.0287 0.029  0.0288 0.0291\n",
      " 0.0289 0.0286 0.0289 0.0287 0.029  0.0288 0.0284 0.0288 0.0285 0.0288\n",
      " 0.0285 0.0282 0.0286 0.0283 0.0286 0.0285 0.0281 0.0286 0.0282 0.0286\n",
      " 0.0283]\n"
     ]
    }
   ],
   "source": [
    "import numpy as np\n",
    "nx = np.array(x)\n",
    "ny = np.array(y)\n",
    "deff = (ny+2.5-nx)\n",
    "print(deff)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 转移特性曲线"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 122,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    },
    {
     "data": {
      "text/plain": [
       "['0.006753A', '1e-09A', '6.83dec', '0.7971V', '0.03897S', '0.3786V/dec']"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import time\n",
    "dev8.write('conf:curr:DC null')\n",
    "dev3.write(f':SOUR:CH1:CURR 0.1')\n",
    "dev3.write(f':SOUR:CH2:CURR 0.1')\n",
    "time.sleep(1)\n",
    "dev8.write('APER FAST')\n",
    "dType = 'N'\n",
    "ch3 = -5\n",
    "if dType == 'N':\n",
    "    vds = 2\n",
    "    startV = -0.5\n",
    "    endV = 2\n",
    "    step = 0.02\n",
    "else:\n",
    "    vds = -2\n",
    "    startV = 0.5\n",
    "    endV = -2\n",
    "    step = -0.02\n",
    "holdingTime = 1\n",
    "settlingTime = 0.4\n",
    "\n",
    "\n",
    "dataCount = int((endV - startV)/step +1)\n",
    "x = [startV + i*step for i in range(dataCount)]\n",
    "dev3.write(':OUTP:STAT CH1,ON')\n",
    "dev3.write(':OUTP:STAT CH2,ON')\n",
    "dev3.write(':OUTP:STAT CH3,ON')\n",
    "y = []\n",
    "\n",
    "import time\n",
    "dev3.write(f':SOUR:CH1:VOLT {startV-ch3}')\n",
    "dev3.write(f':SOUR:CH2:VOLT {vds-ch3}')\n",
    "dev3.write(f':SOUR:CH3:Fixed 5.0')\n",
    "time.sleep(holdingTime)\n",
    "for v in x:\n",
    "    dev3.write(f':SOUR:CH1:VOLT {v-ch3}')\n",
    "    time.sleep(settlingTime)\n",
    "    unit = dev8.query('func:rang:value?')\n",
    "    curr = dev8.query('read?')\n",
    "    try:\n",
    "        y.append(eval(curr)*currRangeMap[unit])\n",
    "    except:\n",
    "        print(curr)\n",
    "        print(unit)\n",
    "dev3.write(':OUTP:STAT CH1,OFF')\n",
    "dev3.write(':OUTP:STAT CH2,OFF')\n",
    "dev3.write(':OUTP:STAT CH3,OFF')\n",
    "\n",
    "from matplotlib import pyplot as plt\n",
    "plt.figure(figsize=(6,6))\n",
    "plt.xlabel('Vgs(V)')\n",
    "plt.ylabel('Ids(A)')\n",
    "plt.title('TransCurve')\n",
    "plt.grid()\n",
    "\n",
    "plt.plot(x,y)\n",
    "plt.show()\n",
    "\n",
    "import gTdev\n",
    "tc = gTdev.transcurve(x,y)\n",
    "display([str(a) for a in [tc.Ion,tc.Ioff,tc.OOR,tc.Vth,tc.Gm,tc.SS]])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['2.38e-07A', '1e-09A', '2.377dec', '1.228V', '-2.1e-06S', '-1V/dec']"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 432x432 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "display([str(a) for a in [tc.Ion,tc.Ioff,tc.OOR,tc.Vth,tc.Gm,tc.SS]])\n",
    "plt.figure(figsize=(6,6))\n",
    "plt.xlabel('Vgs(V)')\n",
    "plt.ylabel('Ids(A)')\n",
    "plt.title('TransCurve')\n",
    "plt.grid()\n",
    "plt.plot(x,0-np.array(y))\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 108,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "20"
      ]
     },
     "execution_count": 108,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dev3.write(f':SOUR:CH3:Fixed 5.0')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "17"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dev3.write(':OUTP:STAT CH2,OFF')\n",
    "dev3.write(':SOUR:CH1:VOLT 2')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 100,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "12"
      ]
     },
     "execution_count": 100,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "dev3.write(':syst:local')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "('ASRL/dev/ttyACM1::INSTR',\n",
       " 'ASRL/dev/ttyACM0::INSTR',\n",
       " 'ASRL/dev/ttyAMA0::INSTR')"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from IPython.display import display\n",
    "import pyvisa\n",
    "rm = pyvisa.ResourceManager()\n",
    "display(rm.list_resources())\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "ASRL/dev/ttyACM1::INSTR\n"
     ]
    },
    {
     "ename": "VisaIOError",
     "evalue": "VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mVisaIOError\u001b[0m                               Traceback (most recent call last)",
      "Input \u001b[0;32mIn [2]\u001b[0m, in \u001b[0;36m<cell line: 1>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      5\u001b[0m devx \u001b[38;5;241m=\u001b[39m rm\u001b[38;5;241m.\u001b[39mopen_resource(x)\n\u001b[1;32m      6\u001b[0m devx\u001b[38;5;241m.\u001b[39mwrite_termination \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m----> 8\u001b[0m display(\u001b[43mdevx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mquery\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m*IDN?\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m)\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa/resources/messagebased.py:642\u001b[0m, in \u001b[0;36mMessageBasedResource.query\u001b[0;34m(self, message, delay)\u001b[0m\n\u001b[1;32m    625\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mquery\u001b[39m(\u001b[38;5;28mself\u001b[39m, message: \u001b[38;5;28mstr\u001b[39m, delay: Optional[\u001b[38;5;28mfloat\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mstr\u001b[39m:\n\u001b[1;32m    626\u001b[0m     \u001b[38;5;124;03m\"\"\"A combination of write(message) and read()\u001b[39;00m\n\u001b[1;32m    627\u001b[0m \n\u001b[1;32m    628\u001b[0m \u001b[38;5;124;03m    Parameters\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    640\u001b[0m \n\u001b[1;32m    641\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 642\u001b[0m     \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwrite\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmessage\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    644\u001b[0m     delay \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mquery_delay \u001b[38;5;28;01mif\u001b[39;00m delay \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m delay\n\u001b[1;32m    645\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m delay \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0.0\u001b[39m:\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa/resources/messagebased.py:197\u001b[0m, in \u001b[0;36mMessageBasedResource.write\u001b[0;34m(self, message, termination, encoding)\u001b[0m\n\u001b[1;32m    191\u001b[0m         warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[1;32m    192\u001b[0m             \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwrite message already ends with \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtermination characters\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m    193\u001b[0m             stacklevel\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m,\n\u001b[1;32m    194\u001b[0m         )\n\u001b[1;32m    195\u001b[0m     message \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m term\n\u001b[0;32m--> 197\u001b[0m count \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwrite_raw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmessage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43menco\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    199\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m count\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa/resources/messagebased.py:157\u001b[0m, in \u001b[0;36mMessageBasedResource.write_raw\u001b[0;34m(self, message)\u001b[0m\n\u001b[1;32m    143\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrite_raw\u001b[39m(\u001b[38;5;28mself\u001b[39m, message: \u001b[38;5;28mbytes\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mint\u001b[39m:\n\u001b[1;32m    144\u001b[0m     \u001b[38;5;124;03m\"\"\"Write a byte message to the device.\u001b[39;00m\n\u001b[1;32m    145\u001b[0m \n\u001b[1;32m    146\u001b[0m \u001b[38;5;124;03m    Parameters\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    155\u001b[0m \n\u001b[1;32m    156\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 157\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvisalib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwrite\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msession\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmessage\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;241m0\u001b[39m]\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa_py/highlevel.py:547\u001b[0m, in \u001b[0;36mPyVisaLibrary.write\u001b[0;34m(self, session, data)\u001b[0m\n\u001b[1;32m    544\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n\u001b[1;32m    545\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m0\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle_return_value(session, StatusCode\u001b[38;5;241m.\u001b[39merror_invalid_object)\n\u001b[0;32m--> 547\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m written, \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_return_value\u001b[49m\u001b[43m(\u001b[49m\u001b[43msession\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstatus_code\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa/highlevel.py:251\u001b[0m, in \u001b[0;36mVisaLibraryBase.handle_return_value\u001b[0;34m(self, session, status_code)\u001b[0m\n\u001b[1;32m    248\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_last_status_in_session[session] \u001b[38;5;241m=\u001b[39m rv\n\u001b[1;32m    250\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rv \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m--> 251\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m errors\u001b[38;5;241m.\u001b[39mVisaIOError(rv)\n\u001b[1;32m    253\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rv \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39missue_warning_on:\n\u001b[1;32m    254\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m session \u001b[38;5;129;01mand\u001b[39;00m rv \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ignore_warning_in_session[session]:\n",
      "\u001b[0;31mVisaIOError\u001b[0m: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed."
     ]
    }
   ],
   "source": [
    "for x in rm.list_resources():\n",
    "    if x == 'ASRL/dev/ttyAMA0::INSTR':\n",
    "        continue\n",
    "    print(x)\n",
    "    devx = rm.open_resource(x)\n",
    "    devx.write_termination = '\\n'\n",
    "    \n",
    "    display(devx.query('*IDN?'))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "ename": "VisaIOError",
     "evalue": "VI_ERROR_TMO (-1073807339): Timeout expired before operation completed.",
     "output_type": "error",
     "traceback": [
      "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
      "\u001b[0;31mVisaIOError\u001b[0m                               Traceback (most recent call last)",
      "Input \u001b[0;32mIn [5]\u001b[0m, in \u001b[0;36m<cell line: 4>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      7\u001b[0m devx \u001b[38;5;241m=\u001b[39m rm\u001b[38;5;241m.\u001b[39mopen_resource(x)\n\u001b[1;32m      8\u001b[0m devx\u001b[38;5;241m.\u001b[39mwrite_termination \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m'\u001b[39m\n\u001b[0;32m----> 9\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m \u001b[43mdevx\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mquery\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[38;5;124;43m*IDN?\u001b[39;49m\u001b[38;5;124;43m'\u001b[39;49m\u001b[43m)\u001b[49m \u001b[38;5;241m==\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;124mREASTTEST  100858896 V1.01.1944.004\u001b[39m\u001b[38;5;130;01m\\r\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m'\u001b[39m:\n\u001b[1;32m     10\u001b[0m     dev3731 \u001b[38;5;241m=\u001b[39m devx\n\u001b[1;32m     11\u001b[0m     dev3731\u001b[38;5;241m.\u001b[39mread_termination \u001b[38;5;241m=\u001b[39m \u001b[38;5;124m'\u001b[39m\u001b[38;5;130;01m\\r\u001b[39;00m\u001b[38;5;130;01m\\n\u001b[39;00m\u001b[38;5;124m'\u001b[39m\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa/resources/messagebased.py:642\u001b[0m, in \u001b[0;36mMessageBasedResource.query\u001b[0;34m(self, message, delay)\u001b[0m\n\u001b[1;32m    625\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mquery\u001b[39m(\u001b[38;5;28mself\u001b[39m, message: \u001b[38;5;28mstr\u001b[39m, delay: Optional[\u001b[38;5;28mfloat\u001b[39m] \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;01mNone\u001b[39;00m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mstr\u001b[39m:\n\u001b[1;32m    626\u001b[0m     \u001b[38;5;124;03m\"\"\"A combination of write(message) and read()\u001b[39;00m\n\u001b[1;32m    627\u001b[0m \n\u001b[1;32m    628\u001b[0m \u001b[38;5;124;03m    Parameters\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    640\u001b[0m \n\u001b[1;32m    641\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 642\u001b[0m     \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwrite\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmessage\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    644\u001b[0m     delay \u001b[38;5;241m=\u001b[39m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mquery_delay \u001b[38;5;28;01mif\u001b[39;00m delay \u001b[38;5;129;01mis\u001b[39;00m \u001b[38;5;28;01mNone\u001b[39;00m \u001b[38;5;28;01melse\u001b[39;00m delay\n\u001b[1;32m    645\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m delay \u001b[38;5;241m>\u001b[39m \u001b[38;5;241m0.0\u001b[39m:\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa/resources/messagebased.py:197\u001b[0m, in \u001b[0;36mMessageBasedResource.write\u001b[0;34m(self, message, termination, encoding)\u001b[0m\n\u001b[1;32m    191\u001b[0m         warnings\u001b[38;5;241m.\u001b[39mwarn(\n\u001b[1;32m    192\u001b[0m             \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mwrite message already ends with \u001b[39m\u001b[38;5;124m\"\u001b[39m \u001b[38;5;124m\"\u001b[39m\u001b[38;5;124mtermination characters\u001b[39m\u001b[38;5;124m\"\u001b[39m,\n\u001b[1;32m    193\u001b[0m             stacklevel\u001b[38;5;241m=\u001b[39m\u001b[38;5;241m2\u001b[39m,\n\u001b[1;32m    194\u001b[0m         )\n\u001b[1;32m    195\u001b[0m     message \u001b[38;5;241m+\u001b[39m\u001b[38;5;241m=\u001b[39m term\n\u001b[0;32m--> 197\u001b[0m count \u001b[38;5;241m=\u001b[39m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwrite_raw\u001b[49m\u001b[43m(\u001b[49m\u001b[43mmessage\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mencode\u001b[49m\u001b[43m(\u001b[49m\u001b[43menco\u001b[49m\u001b[43m)\u001b[49m\u001b[43m)\u001b[49m\n\u001b[1;32m    199\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m count\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa/resources/messagebased.py:157\u001b[0m, in \u001b[0;36mMessageBasedResource.write_raw\u001b[0;34m(self, message)\u001b[0m\n\u001b[1;32m    143\u001b[0m \u001b[38;5;28;01mdef\u001b[39;00m \u001b[38;5;21mwrite_raw\u001b[39m(\u001b[38;5;28mself\u001b[39m, message: \u001b[38;5;28mbytes\u001b[39m) \u001b[38;5;241m-\u001b[39m\u001b[38;5;241m>\u001b[39m \u001b[38;5;28mint\u001b[39m:\n\u001b[1;32m    144\u001b[0m     \u001b[38;5;124;03m\"\"\"Write a byte message to the device.\u001b[39;00m\n\u001b[1;32m    145\u001b[0m \n\u001b[1;32m    146\u001b[0m \u001b[38;5;124;03m    Parameters\u001b[39;00m\n\u001b[0;32m   (...)\u001b[0m\n\u001b[1;32m    155\u001b[0m \n\u001b[1;32m    156\u001b[0m \u001b[38;5;124;03m    \"\"\"\u001b[39;00m\n\u001b[0;32m--> 157\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mvisalib\u001b[49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mwrite\u001b[49m\u001b[43m(\u001b[49m\u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43msession\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mmessage\u001b[49m\u001b[43m)\u001b[49m[\u001b[38;5;241m0\u001b[39m]\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa_py/highlevel.py:547\u001b[0m, in \u001b[0;36mPyVisaLibrary.write\u001b[0;34m(self, session, data)\u001b[0m\n\u001b[1;32m    544\u001b[0m \u001b[38;5;28;01mexcept\u001b[39;00m \u001b[38;5;167;01mKeyError\u001b[39;00m:\n\u001b[1;32m    545\u001b[0m     \u001b[38;5;28;01mreturn\u001b[39;00m \u001b[38;5;241m0\u001b[39m, \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39mhandle_return_value(session, StatusCode\u001b[38;5;241m.\u001b[39merror_invalid_object)\n\u001b[0;32m--> 547\u001b[0m \u001b[38;5;28;01mreturn\u001b[39;00m written, \u001b[38;5;28;43mself\u001b[39;49m\u001b[38;5;241;43m.\u001b[39;49m\u001b[43mhandle_return_value\u001b[49m\u001b[43m(\u001b[49m\u001b[43msession\u001b[49m\u001b[43m,\u001b[49m\u001b[43m \u001b[49m\u001b[43mstatus_code\u001b[49m\u001b[43m)\u001b[49m\n",
      "File \u001b[0;32m~/.local/lib/python3.9/site-packages/pyvisa/highlevel.py:251\u001b[0m, in \u001b[0;36mVisaLibraryBase.handle_return_value\u001b[0;34m(self, session, status_code)\u001b[0m\n\u001b[1;32m    248\u001b[0m     \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_last_status_in_session[session] \u001b[38;5;241m=\u001b[39m rv\n\u001b[1;32m    250\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rv \u001b[38;5;241m<\u001b[39m \u001b[38;5;241m0\u001b[39m:\n\u001b[0;32m--> 251\u001b[0m     \u001b[38;5;28;01mraise\u001b[39;00m errors\u001b[38;5;241m.\u001b[39mVisaIOError(rv)\n\u001b[1;32m    253\u001b[0m \u001b[38;5;28;01mif\u001b[39;00m rv \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39missue_warning_on:\n\u001b[1;32m    254\u001b[0m     \u001b[38;5;28;01mif\u001b[39;00m session \u001b[38;5;129;01mand\u001b[39;00m rv \u001b[38;5;129;01mnot\u001b[39;00m \u001b[38;5;129;01min\u001b[39;00m \u001b[38;5;28mself\u001b[39m\u001b[38;5;241m.\u001b[39m_ignore_warning_in_session[session]:\n",
      "\u001b[0;31mVisaIOError\u001b[0m: VI_ERROR_TMO (-1073807339): Timeout expired before operation completed."
     ]
    }
   ],
   "source": [
    "from IPython.display import display\n",
    "import pyvisa\n",
    "rm = pyvisa.ResourceManager()\n",
    "for x in rm.list_resources():\n",
    "    if x == 'ASRL/dev/ttyAMA0::INSTR':\n",
    "        continue\n",
    "    devx = rm.open_resource(x)\n",
    "    devx.write_termination = '\\n'\n",
    "    if devx.query('*IDN?') == 'REASTTEST  100858896 V1.01.1944.004\\r\\n':\n",
    "        dev3731 = devx\n",
    "        dev3731.read_termination = '\\r\\n'\n",
    "    if devx.query('*IDN?') == 'ZC,VICTOR 8155,,V2.07.2027.000\\n':\n",
    "        dev8155 = devx.read_termination = '\\n'\n",
    "\n",
    "display(dev3731.query('*IDN?'))\n",
    "display(dev3731.query(':CONF:MODE?'))\n",
    "#display(dev3731.query(':MEASure:CURRent?\\sCH1'))\n",
    "#display(dev3731.query('*IDN?\\r'))\n",
    "#display(dev3731.query('*IDN?\\n'))\n",
    "#display(dev3731.query('*IDN?\\r\\n'))\n",
    "#display(dev3731.query(':CONF:MODE?\\n'))\n",
    "display(dev3731.write(':OUTP:STAT CH1,OFF'))\n",
    "#display(dev3731.write(':SOUR:CH1:VOLT 1.2\\n'))\n",
    "dev3731.close()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "':MEASure:CURRent? CH1\\n'"
      ]
     },
     "execution_count": 36,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "ename": "",
     "evalue": "",
     "output_type": "error",
     "traceback": [
      "\u001b[1;31m在当前单元格或上一个单元格中执行代码时 Kernel 崩溃。请查看单元格中的代码，以确定故障的可能原因。有关详细信息，请单击 <a href='https://aka.ms/vscodeJupyterKernelCrash'>此处</a>。有关更多详细信息，请查看 Jupyter <a href='command:jupyter.viewOutput'>log</a>。"
     ]
    }
   ],
   "source": [
    "':MEASure:CURRent? CH1'+chr(0x0a)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "dev3731.query(':SYST:BEEP:IMM')\n",
    "dev3731.close()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
